using System.Linq;
using System.Collections.Generic;
using System.Threading.Tasks;
using MyApi.Api.Entity;

namespace MyApi.Api.Repository
{
    public interface IRepository<T> where T : EntityBase
    {
        IQueryable<T> Table { get; }
        T GetById(object id);
        void Insert(T entity);
        Task InsertAsync(T entity);
        void InsertBulk(IEnumerable<T> entities);
        void InsertBulkAsync(IEnumerable<T> entities);
        void Delete(object id);
        void DeleteBulk(IEnumerable<object> ids);
        void Update(T entity);
        void UpdateBulk(IEnumerable<T> entities);

    }
}